From 5dc6709ea00daabdfe4f3f89aeea958db78f1eca Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Thu, 11 Jun 2009 21:56:02 +0200 Subject: [PATCH] Handle the window being destroyed in do_synthesize_crossing_event This can happen since we ref the window and do the function in an idle. --- gdk/gdkwindow.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 7c5011218a..b843b08868 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -8703,11 +8703,14 @@ do_synthesize_crossing_event (gpointer data) changed_toplevel = data; changed_toplevel_priv = (GdkWindowObject *)changed_toplevel; + changed_toplevel_priv->synthesize_crossing_event_queued = FALSE; + + if (GDK_WINDOW_DESTROYED (changed_toplevel)) + return; + display = gdk_drawable_get_display (changed_toplevel); serial = _gdk_windowing_window_get_next_serial (display); - changed_toplevel_priv->synthesize_crossing_event_queued = FALSE; - if (changed_toplevel == display->pointer_info.toplevel_under_pointer) { new_window_under_pointer = -- 2.30.2